/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.gingresos.recibos;

import java.io.InputStream;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;
import org.gingresos.clases.reportes.MyRecibosDetalles;
import org.gingresos.start.MySesion;
import org.sirmupadbapi.beans.*;
import org.sirmupadbapi.controller.*;
import org.sirmupadbapi.generales.Mensajeria;

/**
 *
 * @author avbravo
 */
public class PrinterRecibos {

//    DefaultTableModel modelo;
    int fila = -1;
    Bicicles bicicletas1 = new Bicicles();
    BiciclesController bicicletasController1 = new BiciclesController();
    Codigosrecargo codigosrecargo1 = new Codigosrecargo();
    CodigosrecargoController codigosrecargoController1 = new CodigosrecargoController();
    Comercios comercios1 = new Comercios();
    ComerciosController comerciosController1 = new ComerciosController();
    Contribuyentes contribuyentes1 = new Contribuyentes();
    ContribuyentesController contribuyentesController1 = new ContribuyentesController();
    Corregimients corregimientos1 = new Corregimients();
    CorregimientsController corregimientosController1 = new CorregimientsController();
    MyRecibosDetalles myRecibosDetalles1 = new MyRecibosDetalles();
    Recibes recibos1 = new Recibes();
    RecibesController recibosController1 = new RecibesController();
    Recibesdetalles recibosDetalles1 = new Recibesdetalles();
    RecibesdetallesController recibosdetallesController1 = new RecibesdetallesController();
    Regimen regimen1 = new Regimen();
    RegimenController regimenController1 = new RegimenController();
    Remolques remolques1 = new Remolques();
    RemolquesController remolquesController1 = new RemolquesController();
    Usuarios usuarios1 = new Usuarios();
    UsuariosController usuariosController1 = new UsuariosController();
    Vehicles vehiculos1 = new Vehicles();
    VehiclesController vehiculosController1 = new VehiclesController();
    Integer idrecibo;
    String usuarioimprime;
    String cedularuc;
    String nombre, direccion, parametroplaca;
    String idrecargo = "";
    String idmunicipio = "";
    String municipio = "";
    Integer paginas;
    String tipo_recibo = "";
    String cedulaDueno = "";
    String nombreDueno = "";
    String marca;
    String modelo;
    String chasis;
    String motor;
    List<MyRecibosDetalles> listMyRecibosDetallesPage1 = new ArrayList<MyRecibosDetalles>();
    List<MyRecibosDetalles> listMyRecibosDetallesPage2 = new ArrayList<MyRecibosDetalles>();
    List<MyRecibosDetalles> listMyRecibosDetallesPage3 = new ArrayList<MyRecibosDetalles>();
    HashMap map = new HashMap();

    public Integer getPaginas() {
        return paginas;
    }

    public void setPaginas(Integer paginas) {
        this.paginas = paginas;
    }

    public String getMunicipio() {
        return municipio;
    }

    public void setMunicipio(String municipio) {
        this.municipio = municipio;
    }

    public String getIdmunicipio() {
        return idmunicipio;
    }

    public void setIdmunicipio(String idmunicipio) {
        this.idmunicipio = idmunicipio;
    }

//    public String getIdcorregimiento() {
//        return idcorregimiento;
//    }
//
//    public void setIdcorregimiento(String idcorregimiento) {
//        this.idcorregimiento = idcorregimiento;
//    }
    public String getIdrecargo() {
        return idrecargo;
    }

    public void setIdrecargo(String idrecargo) {
        this.idrecargo = idrecargo;
    }

    public Integer getIdrecibo() {
        return idrecibo;
    }

    public void setIdrecibo(Integer idrecibo) {
        this.idrecibo = idrecibo;
    }

    public PrinterRecibos() {
    }
// invocar recibos
//      PrinterRecibos pr = new PrinterRecibos();
//        pr.setIdcorregimiento(idRegimen);
//        pr.setIdmunicipio(Sesion.getIdmunicipio());
//        pr.setIdrecibo(IdRecibo);
//        pr.setMunicipio(Sesion.getMunicipio());
//        pr.setPaginas(paginas);
//        pr.ImprimirRecibo();

    public boolean ImprimirRecibo() {
        try {

            java.util.Calendar ca = java.util.Calendar.getInstance();

            java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());

            int year = ca.get(java.util.Calendar.YEAR);


            String sql = "idmunicipio='" + this.idmunicipio + "' and activo='si'";

            if (codigosrecargoController1.query(sql)) {
                for (Codigosrecargo codigosrecargo : codigosrecargoController1.getCodigosrecargolist()) {
                    idrecargo = codigosrecargo.getIDREGIMENRECARGO();
                }
            }
            if (idrecargo.equals("")) {
                Mensajeria.Mensaje("No se ha creado los codigos de recargo");
            } else {
                //   Mensajeria.Mensaje("codigo de recargo " + this.idrecargo);
                consultarRecibo();
            }
            return true;
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "PrinterRecibos.Imprimir()");
        }
        return false;
    }

    public void consultarRecibo() {
        try {


//          

            String sql = "idrecibo='" + this.idrecibo + "' and idmunicipio='" + this.idmunicipio + "'";
            if (!recibosController1.query(sql)) {
                Mensajeria.Mensaje("No existe un recibo con ese numero");
                return;
            }
            recibos1 = recibosController1.getRecibeslist().get(0);
            if (recibos1.getAnulado().equals("si")) {
            } else {
            }

            Format formatter;
            formatter = new SimpleDateFormat("dd/MM/yyyy");
            Date fecha = recibos1.getFecha();
            String MyFecha = formatter.format(fecha);

            this.tipo_recibo = recibos1.getTiporecibo();

            usuarios1.setUsername(recibos1.getIdusuario());
            Usuarios usuarios = usuariosController1.findByPrimaryKey(usuarios1);
            if (usuarios == null) {
                Mensajeria.Mensaje("No existe un usuario registrado que emitio el recibo");
                usuarioimprime = "";
            } else {
                usuarios1 = usuarios;
                usuarioimprime = usuarios1.getUsuario();
            }
            if (recibos1.getTipoid().equals("comercios")) {
                map.put("P_TITULOCEDULARUC", "R.U.C.");

                comercios1.setIDCOMERCIO(recibos1.getId());
                comercios1.setIDMUNICIPIO(this.idmunicipio);

                cargarComercios();
                cargarRecibos();

                parametroplaca = "";
                if (recibos1.getTiporecibo().equals("comerciosinscripcion")) {
                    map.put("P_TELEFONO", comercios1.getTELEFONO());
                    map.put("P_DUENO", this.nombreDueno);
                    map.put("P_CEDULADUENO", this.cedulaDueno);
                    ImprimirComerciosInscripcion(listMyRecibosDetallesPage1, map);

                } else {
                    switch (this.paginas) {
                        case 1:
                            Imprimir(listMyRecibosDetallesPage1, map);
                            break;
                        case 2:
                            ImprimirPaginas(listMyRecibosDetallesPage1, map, "2_1");
                            ImprimirPaginas(listMyRecibosDetallesPage2, map, "2_2");
                            break;
                        case 3:
                            ImprimirPaginas(listMyRecibosDetallesPage1, map, "3_1");
                            ImprimirPaginas(listMyRecibosDetallesPage2, map, "3_2");
                            ImprimirPaginas(listMyRecibosDetallesPage3, map, "3_3");
                            break;
                        default:
                            Mensajeria.Mensaje("Demasiados impuestos por imprimir");
                            return;
                    }
                }

            } else {
                if (recibos1.getTipoid().equals("contribuyentes")) {
                    map.put("P_TITULOCEDULARUC", "Cedula");
                    contribuyentes1.setCEDULA(recibos1.getId());
                    contribuyentes1.setIDMUNICIPIO(this.idmunicipio);
                    cargarContribuyentes();
                    cargarRecibos();
                    parametroplaca = "";

                    switch (this.paginas) {
                        case 1:
                            Imprimir(listMyRecibosDetallesPage1, map);
                            break;
                        case 2:
                            ImprimirPaginas(listMyRecibosDetallesPage1, map, "2_1");
                            ImprimirPaginas(listMyRecibosDetallesPage2, map, "2_2");
                            break;
                        case 3:
                            ImprimirPaginas(listMyRecibosDetallesPage1, map, "3_1");
                            ImprimirPaginas(listMyRecibosDetallesPage2, map, "3_2");
                            ImprimirPaginas(listMyRecibosDetallesPage3, map, "3_3");
                            break;
                        default:
                            Mensajeria.Mensaje("Demasiados impuestos por imprimir");
                            return;
                    }
                } else {
                    /*
                     * bicicletas
                     */
                    if (recibos1.getTipoid().equals("bicicletas")) {

                        cargarBicicletas();
                        cargarRecibos();
                        map.put("P_DUENO", this.nombreDueno);
                        map.put("P_CEDULADUENO", this.cedulaDueno);
                        map.put("P_MARCA", this.marca);
                        map.put("P_MODELO", this.modelo);
                        map.put("P_CHASIS", this.chasis);

                        ImprimirBicicletas(listMyRecibosDetallesPage1, map);

                    } else {
                        /*
                         * remolques
                         */
                        if (recibos1.getTipoid().equals("remolques")) {
                            map.put("P_TIPORECIBO", "");
                            cargarRemolques();
                            cargarRecibos();
                            map.put("P_DUENO", this.nombreDueno);
                            map.put("P_CEDULADUENO", this.cedulaDueno);
                            map.put("P_MARCA", this.marca);
                            map.put("P_MODELO", this.modelo);
                            map.put("P_CHASIS", this.chasis);
                            map.put("P_TITULOPLACA", "PLACA");
                            if (recibos1.getTiporecibo().equals("remolquesinscripcion")) {
                                map.put("P_TIPORECIBO", "INSCRIPCION REMOLQUES");
                                map.put("P_TITULOPLACA", "");
                            } else {
                                if (recibos1.getTiporecibo().equals("remolquescertificacion")) {
                                    map.put("P_TIPORECIBO", "CERTIFICACION REMOLQUES");
                                    //  map.put("P_TITULOPLACA", "");
                                } else {
                                    if (recibos1.getTiporecibo().equals("remolquesinscripciontraspaso")) {
                                        map.put("P_TIPORECIBO", "TRASPASO REMOLQUES");
                                    } else {
                                        if (recibos1.getTiporecibo().equals("remolqueshipoteca")) {
                                            map.put("P_TIPORECIBO", "HIPOTECA");
                                        } else {
                                            if (recibos1.getTiporecibo().equals("remolqueshipotecaliberar")) {
                                                map.put("P_TIPORECIBO", "LIBERACION DE HIPOTECA");

                                            } else {
                                                if (recibos1.getTiporecibo().equals("remolquesfideicomiso")) {
                                                    map.put("P_TIPORECIBO", "FIDEICOMISO");

                                                } else {
                                                    if (recibos1.getTiporecibo().equals("remolquesfideicomisoliberar")) {
                                                        map.put("P_TIPORECIBO", "FIDEICOMISO LIBERACION");
                                                    } else {
                                                        if (recibos1.getTiporecibo().equals("remolquessecuestro")) {
                                                            map.put("P_TIPORECIBO", "SECUESTRO");
                                                        } else {
                                                            if (recibos1.getTiporecibo().equals("remolquespagoplaca")) {
                                                                map.put("P_TIPORECIBO", "PLACA");
                                                            } else {
                                                                if (recibos1.getTiporecibo().equals("remolquestraspaso")) {
                                                                    map.put("P_TIPORECIBO", "TRASPASO");
                                                                } else {
                                                                    if (recibos1.getTiporecibo().equals("remolquespagoplacaatrasados")) {
                                                                        map.put("P_TIPORECIBO", "PLACA");
                                                                    }
                                                                }
                                                            }

                                                        }

                                                    }
                                                }


                                            }
                                        }
                                    }
                                }
                            }

                            ImprimirRemolques(listMyRecibosDetallesPage1, map);
                        } else {
                            if (recibos1.getTipoid().equals("vehiculos")) {
                                map.put("P_TIPORECIBO", "");
                                cargarVehiculos();
                                cargarRecibos();
                                map.put("P_DUENO", this.nombreDueno);
                                map.put("P_CEDULADUENO", this.cedulaDueno);
                                map.put("P_MARCA", this.marca);
                                map.put("P_MODELO", this.modelo);
                                map.put("P_CHASIS", this.chasis);
                                map.put("P_MOTOR", this.motor);
                                map.put("P_TITULOPLACA", "PLACA");

                                if (recibos1.getTiporecibo().equals("vehiculosinscripcion")) {
                                    map.put("P_TIPORECIBO", "INSCRIPCION VEHICULAR");
                                    map.put("P_TITULOPLACA", "");
                                } else {
                                    if (recibos1.getTiporecibo().equals("vehiculoscertificacion")) {
                                        map.put("P_TIPORECIBO", "CERTIFICACION VEHICULAR");
                                        //  map.put("P_TITULOPLACA", "");
                                    } else {
                                        if (recibos1.getTiporecibo().equals("vehiculostraspaso")) {
                                            map.put("P_TIPORECIBO", "TRASPASO VEHICULAR");
                                        } else {
                                            if (recibos1.getTiporecibo().equals("vehiculoshipoteca")) {
                                                map.put("P_TIPORECIBO", "HIPOTECA");
                                            } else {
                                                if (recibos1.getTiporecibo().equals("vehiculoshipotecaliberar")) {
                                                    map.put("P_TIPORECIBO", "LIBERACION DE HIPOTECA");

                                                } else {
                                                    if (recibos1.getTiporecibo().equals("vehiculosfideicomiso")) {
                                                        map.put("P_TIPORECIBO", "FIDEICOMISO");

                                                    } else {
                                                        if (recibos1.getTiporecibo().equals("vehiculosfideicomisoliberar")) {
                                                            map.put("P_TIPORECIBO", "FIDEICOMISO LIBERACION");
                                                        } else {
                                                            if (recibos1.getTiporecibo().equals("vehiculossecuestro")) {
                                                                map.put("P_TIPORECIBO", "SECUESTRO");
                                                            } else {
                                                                if (recibos1.getTiporecibo().equals("vehiculospagoplaca")) {
                                                                    map.put("P_TIPORECIBO", "PLACA");
                                                                } else {
                                                                    if (recibos1.getTiporecibo().equals("vehiculospagoplacaatrasados")) {
                                                                        map.put("P_TIPORECIBO", "PLACA");
                                                                    }
                                                                }

                                                            }

                                                        }
                                                    }


                                                }
                                            }
                                        }
                                    }
                                }

                                ImprimirVehiculos(listMyRecibosDetallesPage1, map);
                            }
                        }
                    }

                }


            }




        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "ConsultarRecibo()");
        }
    }

    private void Imprimir(List<MyRecibosDetalles> aux, HashMap map) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedularuc);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/Recibos.jasper");
            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
            System.out.println(" ex" + ex);
        }
    }

    private void ImprimirPaginas(List<MyRecibosDetalles> aux, HashMap map, String control) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedularuc);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = null;
            reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/Recibos_" + control + ".jasper");


            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
            System.out.println(" ex" + ex);
        }
    }

    private void ImprimirComerciosInscripcion(List<MyRecibosDetalles> aux, HashMap map) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedularuc);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/RecibosComerciosInscripcion.jasper");
            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
            System.out.println(" ex" + ex);
        }
    }

    private void ImprimirBicicletas(List<MyRecibosDetalles> aux, HashMap map) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedularuc);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/RecibosBicicletas.jasper");
            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
            System.out.println(" ex" + ex);
        }
    }

    private void ImprimirVehiculos(List<MyRecibosDetalles> aux, HashMap map) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedularuc);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/RecibosVehiculos.jasper");
            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
            System.out.println(" ex" + ex);
        }
    }

    private void ImprimirRemolques(List<MyRecibosDetalles> aux, HashMap map) throws JRException {
        try {
            map.put("P_NOMBREUSUARIO", usuarioimprime);
            map.put("P_CEDULARUC", cedularuc);
            map.put("P_PLACA", parametroplaca);
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(aux);
            InputStream reporte = (InputStream) getClass().getResourceAsStream("/org/gingresos/reportes/recibos/RecibosRemolques.jasper");
            if (reporte == null) {
                Mensajeria.Mensaje("No se pudo cargar el reporte");
            } else {
                JasperPrint print = JasperFillManager.fillReport(reporte, map, ds);
                JasperViewer.viewReport(print, false);
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "Imprimir()");
            System.out.println(" ex" + ex);
        }
    }

    private void cargarComercios() {
        try {

            Comercios comercios = comerciosController1.findByPrimaryKey(comercios1);
            if (comercios == null) {
                Mensajeria.Mensaje("No existe un comercio con ese codigo: " + comercios1.getIDCOMERCIO());
                return;
            }
            comercios1 = comercios;
            nombre = comercios1.getCOMERCIO();
            cedularuc = comercios1.getRUC();
            comercios1.getCEDULA();

            cargarDireccion(comercios1.getIDCORREGIMIENTO());
            buscarDueno(comercios1.getCEDULA());
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarComercios()");
        }
    }

    private void cargarContribuyentes() {
        try {
            Contribuyentes contribuyentes = contribuyentesController1.findByPrimaryKey(contribuyentes1);
            if (contribuyentes == null) {
                Mensajeria.Mensaje("No existe un contribuyente con esa cedula: " + contribuyentes1.getCEDULA());
                return;
            }
            contribuyentes1 = contribuyentes;
            nombre = contribuyentes1.getCONTRIBUYENTE();
            cedularuc = contribuyentes.getCEDULA();
            cargarDireccion(contribuyentes1.getIDCORREGIMIENTO());

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarContribuyentes()");
        }
    }

    private void cargarBicicletas() {
        try {

            bicicletas1.setIDBICICLETA(Long.parseLong(recibos1.getId()));
            bicicletas1.setIDMUNICIPIO(this.idmunicipio);
            Bicicles bicicletas = bicicletasController1.findByPrimaryKey(bicicletas1);
            if (bicicletas == null) {
                Mensajeria.Mensaje("No existe una bicicleta con el codigo " + bicicletas1.getID());
                return;
            }
            bicicletas1 = bicicletas;
            parametroplaca = bicicletas.getPLACA();
            this.marca = bicicletas.getMARCA();
            this.modelo = bicicletas.getMODELO();
            this.chasis = bicicletas.getCHASIS();
            if (bicicletas1.getTIPOID().equals("contribuyentes")) {
                map.put("P_TITULOCEDULARUC", "Cedula");
                buscarDueno(bicicletas1.getID());
            } else {
                if (bicicletas1.getTIPOID().equals("comercios")) {
                    map.put("P_TITULOCEDULARUC", "R.U.C");
                    buscarDuenoComercio(bicicletas1.getID());
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "CargarBicicletas()");
        }

    }

    private void cargarRemolques() {
        try {
            remolques1.setIDREMOLQUE(Long.parseLong(recibos1.getId()));
            remolques1.setIDMUNICIPIO(this.idmunicipio);
            Remolques remolques = remolquesController1.findByPrimaryKey(remolques1);
            if (remolques == null) {
                Mensajeria.Mensaje("No existe un remolque con el codigo " + remolques1.getID());
                return;
            }
            remolques1 = remolques;
            parametroplaca = remolques1.getPLACA();
            this.marca = remolques1.getMARCA();
            this.modelo = remolques1.getMODELO();
            this.chasis = remolques1.getCHASIS();
            this.motor = "";
            //Encontrar el dueño
            if (remolques1.getTIPOID().equals("contribuyentes")) {
                map.put("P_TITULOCEDULARUC", "Cedula");
                buscarDueno(remolques1.getID());
            } else {
                if (remolques1.getTIPOID().equals("comercios")) {
                    map.put("P_TITULOCEDULARUC", "R.U.C");
                    buscarDuenoComercio(remolques1.getID());
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarRemolques()");
        }
    }

    private void cargarVehiculos() {
        try {
            vehiculos1.setIDVEHICULO(Long.parseLong(recibos1.getId()));
            vehiculos1.setIDMUNICIPIO(this.idmunicipio);
            Vehicles vehiculos = vehiculosController1.findByPrimaryKey(vehiculos1);

            if (vehiculos == null) {
                Mensajeria.Mensaje("No existe un vehiculos con el codigo " + vehiculos1.getID());
                return;
            }
            vehiculos1 = vehiculos;
            parametroplaca = vehiculos1.getPLACA();
            this.marca = vehiculos1.getMARCA();
            this.modelo = vehiculos1.getMODELO();
            this.chasis = vehiculos1.getCHASIS();
            this.motor = vehiculos1.getMOTOR();
            //Encontrar el dueño
            if (vehiculos1.getTIPOID().equals("contribuyentes")) {
                map.put("P_TITULOCEDULARUC", "Cedula");
                buscarDueno(vehiculos1.getID());
            } else {
                if (vehiculos1.getTIPOID().equals("comercios")) {
                    map.put("P_TITULOCEDULARUC", "R.U.C");
                    buscarDuenoComercio(vehiculos1.getID());
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarVehiculos()");
        }
    }

    private void cargarDireccion(String idcorregimiento) {
        try {

            corregimientos1.setIdcorregimiento(idcorregimiento);
            Corregimients corregimients = corregimientosController1.findByPrimaryKey(corregimientos1);
            if (corregimients == null) {
                Mensajeria.Mensaje("No existe un corregimiento con el codigo " + corregimientos1.getIdcorregimiento());
                return;
            }

            corregimientos1 = corregimients;
            direccion = corregimientos1.getCorregimiento();

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarDireccion()");
        }
    }

    private void cargarRecibos() {
        try {

            String sql = "idrecibo= '" + recibos1.getIdrecibo() + "' and idmunicipio='" + this.idmunicipio + "'";
            if (recibosdetallesController1.query(sql)) {

                listMyRecibosDetallesPage1.removeAll(listMyRecibosDetallesPage1);
                listMyRecibosDetallesPage2.removeAll(listMyRecibosDetallesPage2);
                listMyRecibosDetallesPage3.removeAll(listMyRecibosDetallesPage3);
                String lidregimen = "";

                Integer contador = 0;
                Integer numeroRegistros = recibosdetallesController1.getRecibesdetalleslist().size();
                if (numeroRegistros <= 9) {
                    this.paginas = 1;
                } else {
                    if (numeroRegistros >= 10 && numeroRegistros <= 18) {
                        this.paginas = 2;
                    } else {
                        if (numeroRegistros >= 19 && numeroRegistros <= 27) {
                            this.paginas = 3;
                        }
                    }
                }

                for (Recibesdetalles recibosdetalles : recibosdetallesController1.getRecibesdetalleslist()) {
                    contador++;


                    regimen1.setIdregimen(recibosdetalles.getIdregimen());
                    regimen1.setIdmunicipio(recibosdetalles.getIdmunicipio());
                    lidregimen = recibosdetalles.getIdregimen();
                    if (recibosdetalles.getEsrecargo().equals("no")) {
//                        filas[0] = new Boolean(false);
                    } else {

                        lidregimen = idrecargo;
                    }

                    Regimen regimen = regimenController1.findByPrimaryKey(regimen1);
                    if (regimen == null) {
                        Mensajeria.Mensaje("No existe un regimen con el codigo: " + regimen1.getIdregimen());
                    } else {
                        if (contador <= 9) {
                            listMyRecibosDetallesPage1.add(new MyRecibosDetalles(nombre, direccion,
                                    this.municipio, recibos1, regimen.getRegimen(), lidregimen, MySesion.Redondeo(recibosdetalles.getSaldoanterior()),
                                    MySesion.Redondeo(recibosdetalles.getPago()),
                                    MySesion.Redondeo(recibosdetalles.getExoneracion()),
                                    MySesion.Redondeo(recibosdetalles.getSaldo()), recibosdetalles.getComentario()));
                        }
                        if (contador >= 10 && contador <= 18) {
                            listMyRecibosDetallesPage2.add(new MyRecibosDetalles(nombre, direccion,
                                    this.municipio, recibos1, regimen.getRegimen(), lidregimen, MySesion.Redondeo(recibosdetalles.getSaldoanterior()),
                                    MySesion.Redondeo(recibosdetalles.getPago()),
                                    MySesion.Redondeo(recibosdetalles.getExoneracion()),
                                    MySesion.Redondeo(recibosdetalles.getSaldo()), recibosdetalles.getComentario()));
                        } else {
                            if (contador >= 19 && contador <= 27) {
                                listMyRecibosDetallesPage3.add(new MyRecibosDetalles(nombre, direccion,
                                        this.municipio, recibos1, regimen.getRegimen(), lidregimen, MySesion.Redondeo(recibosdetalles.getSaldoanterior()),
                                        MySesion.Redondeo(recibosdetalles.getPago()),
                                        MySesion.Redondeo(recibosdetalles.getExoneracion()),
                                        MySesion.Redondeo(recibosdetalles.getSaldo()), recibosdetalles.getComentario()));
                            }
                        }


                    }

                }

            } else {
                Mensajeria.Mensaje("No existen registros de detalles de recibos con ese numero");
                return;
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarRecibos()");
        }

    }

    private boolean buscarDueno(String cedula) {
        try {
            Contribuyentes c = new Contribuyentes();
            ContribuyentesController cc = new ContribuyentesController();
            c.setIDMUNICIPIO(this.idmunicipio);
            c.setCEDULA(cedula);
            Contribuyentes c2 = cc.findByPrimaryKey(c);
            if (c2 == null) {
                Mensajeria.Mensaje("No existe un contribuyente con esa cedula: " + cedula);
                return false;
            }

            this.cedulaDueno = cedula;
            this.nombreDueno = c2.getCONTRIBUYENTE();
            cargarDireccion(c2.getIDCORREGIMIENTO());
            return true;
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "buscarDueno()");
        }
        return false;
    }

    private boolean buscarDuenoComercio(String idcomercio) {
        try {
            Comercios c = new Comercios();
            ComerciosController cc = new ComerciosController();
            c.setIDMUNICIPIO(this.idmunicipio);
            c.setIDCOMERCIO(idcomercio);
            Comercios c2 = cc.findByPrimaryKey(c);
            if (c2 == null) {
                Mensajeria.Mensaje("No existe un comercio con ese id: " + idcomercio);
                return false;
            }

            this.cedulaDueno = c2.getRUC();
            this.nombreDueno = c2.getCOMERCIO();
            cargarDireccion(c2.getIDCORREGIMIENTO());
            return true;
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "buscarDuenoComercio()");
        }
        return false;
    }
}
